<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.prime.com.tr/ui">
    <ui:composition template="Index.xhtml">  
        <ui:define name="content"> 
            <h:body>
                <p:growl id="avisos" showDetail="true"/>
                <h:form id="formEditar">
                    <p:panel header="Cadastro de Usuario" id="panelDados">
                        <h:panelGrid columns="1" >
                            <h:outputText value="Código"/>
                            <p:inputText value="#{usuarioHandler.usuario.idUsuario}" disabled="true" size="5"/>
                            <h:outputText value="Nome usuário"/>
                            <p:inputText value="#{usuarioHandler.usuario.usuario}" size="50" maxlength="100" required="true" requiredMessage="Campo usuário obrigatório"/>
                            <h:outputText value="Senha"/>
                            <p:password value="#{usuarioHandler.usuario.password}" goodLabel="Boa" weakLabel="Razoável" strongLabel="Excelente" feedback="true" minLength="4" required="true" requiredMessage="Campo password obrigatório"/>
                            <h:outputText value="Confirmar senha"/>
                            <p:password value="#{usuarioHandler.usuario.confirmaPassword}" goodLabel="Boa" weakLabel="Razoável" strongLabel="Excelente" feedback="true" minLength="4" required="true" requiredMessage="Campo confirma password obrigatório"/>
                            <h:outputText value="Papel como Usuário"/>
                            <h:selectOneMenu id="autoridade" value="#{usuarioHandler.usuario.autorizacao}" required="true" requiredMessage="Campo autorização obrigatório.">
                                <f:selectItem itemLabel="selecione o tipo usuário" itemValue="" />                                 
                                <f:selectItem itemLabel="Administrador" itemValue="admin" />
                                <f:selectItem itemLabel="Usuário" itemValue="user" />
                            </h:selectOneMenu>
                            <p:column>
                                <p:commandButton action="#{usuarioHandler.salvar}"  value="Salvar" update="avisos panelDados"  image="ui-icon ui-icon-disk"/>
                                <p:commandButton value="Pesquisar" image="ui-icon-search" action="#{usuarioHandler.listausuario()}" update="formPesquisa" oncomplete="dlg2.show();"/>
                                <p:commandButton value="Cancelar" image="ui-icon-document" update="panelDados" oncomplete="cancelar.show();"/> 
                            </p:column>
                            <p:spacer width="0" height="20" />
                        </h:panelGrid>
                    </p:panel>
                </h:form>

                <p:dialog id="dialogusuario" header="Pesquisar Usuario" hideEffect="drop" height="400" width="700"  widgetVar="dlg2">  
                    <h:form id="formPesquisa">
                        <p:dataTable id="tabelausuario" var="b" value="#{usuarioHandler.listausuario()}" 
                                     emptyMessage="Nenhum registro encontrado." rows="8" 
                                     paginator="true" selectionMode="single">
                            <p:column filterBy="#{b.usuario}" headerText="Pesquisar por Usuário">  
                                <h:outputText value="#{b.usuario}" />  
                            </p:column>
                            <p:column headerText="Senha" style="text-align: center">
                                <h:outputText value="#{b.password}" />
                            </p:column>
                            <p:column headerText="Confirma senha" style="text-align: center">
                                <h:outputText value="#{b.password}" />
                            </p:column>
                            <p:column headerText="Autorização" style="text-align: center">
                                <h:outputText value="#{b.autorizacao}" />
                            </p:column>
                            <p:column style="text-align: center">
                                <p:commandButton actionListener="#{usuarioHandler.parametroRemover}" image="ui-icon-trash"
                                                 update="avisos" title="excluir registro" oncomplete="confirmacao.show()" immediate="true">  
                                    <f:param id="idParaRemover" value="#{b}"/>
                                </p:commandButton> 
                                <p:commandButton actionListener="#{usuarioHandler.alterar(b)}" update="formEditar" onclick="CadastroUsuario.xhtml"
                                                 image="ui-icon-wrench" title="alterar registro" immediate="true">
                                </p:commandButton>
                            </p:column>  
                        </p:dataTable>
                    </h:form>
                </p:dialog>
                <p:confirmDialog message="Deseja realmente excluir registro?" hideEffect="explode" 
                                 header="Excluir" severity="alert" widgetVar="confirmacao" modal="true">
                    <h:form>
                        <p:commandButton value="Sim" oncomplete="confirmacao.hide();" 
                                         ajax="false" action="#{usuarioHandler.remover()}" immediate="true"/>
                        <p:commandButton value="Não" onclick="confirmacao.hide()" type="button" immediate="true"/>
                    </h:form>
                </p:confirmDialog>

                <p:confirmDialog  message="Deseja Cancelar?" hideEffect="drop" modal="true" 
                                  header="Cancelar usuario" severity="info" widgetVar="cancelar">
                    <h:form>
                        <p:commandButton action="#{usuarioHandler.cancelar()}" onclick="cancelar.hide()" value="Sim" update="formEditar:panelDados"/>
                        <p:commandButton value="Não" onclick="cancelar.hide()"  type="button"/>
                    </h:form>
                </p:confirmDialog>
            </h:body>
        </ui:define>
    </ui:composition>
</html>
